package Logica;

import java.util.HashMap;
import java.util.Map;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import javax.persistence.*;
import java.io.Serializable;
import java.util.LinkedList;
import java.util.List;

@Entity
public class Taller implements Serializable {

    @Id
    private int nroTaller;
    @Basic
    private String direccion;
    @Basic
    private String nombre;
    @Basic
    private String telefono;
    @OneToOne
    private Localidad unaLocalidad;
    @OneToMany
    private List<Localidad> zonasCobertura;
    @OneToMany
    private List<DiaLaboral> diasLaborables;
    @OneToMany
    private List<Proveedor> proveedores;
    @OneToMany
    private Set<Repuesto> repuestos;
    @OneToMany
    private List<Empleado> empleados;
    @OneToMany
    private List<Turno> turnos;
    @OneToMany
    private List<ReparacionEnEjecucion> reparacionesEnEjecucion;

    public Taller() {
         this.zonasCobertura = new LinkedList();
         this.empleados = new LinkedList();
    }

    public Taller(int nroTaller, String direccion, String nombre, String telefono, Localidad unaLocalidad) {
        this.nroTaller = nroTaller;
        this.direccion = direccion;
        this.nombre = nombre;
        this.telefono = telefono;
        this.unaLocalidad = unaLocalidad;
        this.zonasCobertura = new LinkedList();
        this.diasLaborables = new LinkedList();
        this.proveedores = new LinkedList();
        this.repuestos = new HashSet();
        this.empleados = new LinkedList();
        this.turnos = new LinkedList();
        this.reparacionesEnEjecucion = new LinkedList();
    }

    public List<Empleado> getEmpleados() {
        return empleados;
    }

    public void setEmpleados(List<Empleado> empleados) {
        this.empleados = empleados;
    }

    public Set<Repuesto> getRepuestos() {
        return repuestos;
    }

    public void setRepuestos(Set<Repuesto> repuestos) {
        this.repuestos = repuestos;
    }


    public List<Turno> getTurnos() {
        return turnos;
    }

    public void setTurnos(List<Turno> turnos) {
        this.turnos = turnos;
    }

    public List<ReparacionEnEjecucion> getReparacionesEnEjecucion() {
        return reparacionesEnEjecucion;
    }

    public void setReparacionesEnEjecucion(List<ReparacionEnEjecucion> reparacionesEnEjecucion) {
        this.reparacionesEnEjecucion = reparacionesEnEjecucion;
    }

    public void setUnaLocalidad(Localidad unaLocalidad) {
        this.unaLocalidad = unaLocalidad;
    }

    public Localidad getUnaLocalidad() {
        return unaLocalidad;
    }

    public String getDireccion() {
        return direccion;
    }

    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getTelefono() {
        return telefono;
    }

    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }

    public int getNroTaller() {
        return nroTaller;
    }

    public void setNroTaller(int nroTaller) {
        this.nroTaller = nroTaller;
    }

    public List<Localidad> getZonasCobertura() {
        return zonasCobertura;
    }

    public void setZonasCobertura(List<Localidad> zonasCobertura) {
        this.zonasCobertura = zonasCobertura;
    }

    public List<DiaLaboral> getDiasLaborables() {
        return diasLaborables;
    }

    public void setDiasLaborables(List<DiaLaboral> diasLaborables) {
        this.diasLaborables = diasLaborables;
    }

    public List<Proveedor> getProveedores() {
        return proveedores;
    }

    public void setProveedores(List<Proveedor> proveedores) {
        this.proveedores = proveedores;
    }
    
    public String toString(){
        return this.nombre+" - "+this.unaLocalidad;
    }

  
}
